<!DOCTYPE html>
<html lang="zh-cn">
    <head>
        <meta charset="UTF-8"/>
        <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0" />
        <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
        <title>绑定函数-创建绑定函数</title>
    </head>
    <body>
        <h1>绑定函数</h1>
        <p>来源:<a href="https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Function/bind">https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Function/bind</a></p>
        <script>
            this.x = 9; 
            var module = {
              x: 81,
              getX: function() { return this.x; }
            };

            alert(module.getX()); // 返回 81

            var retrieveX = module.getX;
            alert('retrieveX' + retrieveX()); // 返回 9, 在这种情况下，"this"指向全局作用域

            // 创建一个新函数，将"this"绑定到module对象
            // 新手可能会被全局的x变量和module里的属性x所迷惑
            var boundGetX = retrieveX.bind(module);
            alert('boundGetX' + boundGetX()); // 返回 81
        </script>
    </body>
</html>